package randomthoughts.dp;

/**
 * @author tongchen
 * @create 2023-04-19 11:17
 */
public class BuyAndSellStockII {
    public static void main(String[] args) {

    }
    //LeetCode 122
    //延续了买卖股票最佳时机I的问题，解题思路也完全一致，我们只需要写一下递推公式中的递归公式的部分变化
    //递推公式：dp[i][0]=max(dp[i-1][0],dp[i-1][1]-price[i]) dp[i-1][1]=max(dp[i-1][1],dp[i-1][0]+price[i])
    public static int maxMoney(int[]nums){
        //创建dp
        int[][]dp=new int[nums.length][2];
        dp[0][0]=-nums[0];
        dp[0][1]=0;
        for (int i=1;i< nums.length;++i)
        {
            dp[i][0]=Math.max(dp[i-1][0],dp[i-1][1]-nums[i]);
            dp[i][1]=Math.max(dp[i-1][1],dp[i-1][0]+nums[i]);
        }
        return dp[nums.length-1][1];
    }
}
